package core

import (
	"log"
	"os"
)

// Logger 定义了日志接口。
type Logger interface {
	Printf(format string, v ...interface{})
	Println(v ...interface{})
}

// defaultLogger 是一个使用标准库 log 的默认 Logger 实现。
type defaultLogger struct {
	*log.Logger
}

// NewDefaultLogger 创建一个新的默认 Logger 实例。
func NewDefaultLogger() Logger {
	return &defaultLogger{log.New(os.Stderr, "[go-sender] ", log.LstdFlags)}
}

// globalLogger 是全局的 Logger 实例。
var globalLogger Logger = NewDefaultLogger()

// SetLogger 设置全局 Logger 实例。
func SetLogger(logger Logger) {
	if logger != nil {
		globalLogger = logger
	}
}

// GetLogger 获取全局 Logger 实例。
func GetLogger() Logger {
	return globalLogger
}
